# -*- coding: utf-8 -*-
# @description: 学习打包分发工具setuptools
# @File  : setup.py
# @Time  :2020-07-21 17:00:25
# @Author:selfeasy
# @Email :gm_selfeasy@163.com
import os, shutil
from setuptools import setup, find_packages
#https://blog.konghy.cn/2018/04/29/setup-dot-py/
#移除构建的build文件夹
CUR_PATH = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(CUR_PATH, 'build')
if os.path.isdir(path):
    print('INFO del dir ', path) 
    shutil.rmtree(path)


setup(
    name = 'setup_demo', #应用名
    author = 'selfeasy',
    author_email = 'gm_selfeasy@163.com',
    version = '0.0.1',  #版本号
    packages = find_packages(),  #包括在安装包内的Python包
    include_package_data = True, #启用清单文件MANIFEST.in,包含数据文件
    exclude_package_data = {'docs':['1.txt']},  #排除文件
    install_requires = [#自动安装依赖
        'Flask>=0.10',
    ],
    entry_points = {
        'console_scripts':['demo = demo.test:pt'] #生成脚本
    },
    url = 'https://gitee.com/selfeasy'

)

#打包流程
#1. 创建egg包
'''
python setup.py bdist_egg
该命令会在当前目录下的”dist”目录内创建一个”egg”文件，名为”MyApp-1.0-py2.7.egg”。复制该文件到目标机器，
执行pip install MyApp-1.0-py2.7.egg 即可完成项目安装
文件名格式就是”应用名-版本号-Python版本.egg”，我本地Python版本是2.7。
同时你会注意到，当前目录多了”build”和”MyApp.egg-info”子目录来存放打包的中间结果。
'''

#2.安装应用
'''
python setup.py install
该命令会将当前的Python应用安装到当前Python环境的”site-packages”目录下，
这样其他程序就可以像导入标准库一样导入该应用的代码了。
'''
#3. 开发方式安装
'''
python setup.py develop #若安装失败，使用sudo 管理员模式
如果应用在开发过程中会频繁变更，每次安装还需要先将原来的版本卸掉，很麻烦。
使用”develop”开发方式安装的话，应用代码不会真的被拷贝到本地Python环境的”site-packages”目录下，
而是在”site-packages”目录里创建一个指向当前应用位置的链接。这样如果当前位置的源码被改动，就会马上反映到”site-packages”里。
'''



'''
引入非python文件

项目目录下添加一个”MANIFEST.in”文件
'''

# 4. 在当前虚拟环境中安装项目

'''python
pip install -e .
'''